﻿namespace OT.HikiSecureCenterApis.Service.OneCard.Req
{
    public class ReqAuthDownloadDataAdd
    {
        /// <summary>
        /// 是否必填：是
        /// 下载任务唯一标识
        /// </summary>
        public string taskId { get; set; }
        /// <summary>
        /// 是否必填：是
        /// </summary>
        public IList<ResourceInfo> resourceInfos { get; set; }
        /// <summary>
        /// 是否必填：是
        /// </summary>
        public IList<PersonInfoAdd> personInfos { get; set; }
    }

    public class Card
    {
        /// <summary>
        /// 是否必填：是
        /// 卡号，支持8-20位数字+大写字母的卡号；请根据设备实际能力填写卡号
        /// </summary>
        public string card { get; set; }
        /// <summary>
        /// 是否必填：是
        /// 状态 0: 新增 1: 修改 2:删除
        /// </summary>
        public int status { get; set; }
        /// <summary>
        /// 是否必填：是
        /// 卡类型，为空时默认正常普通卡 1: 普通卡 2: 残疾人卡 3: 黑名单卡 4:巡查卡 5:胁迫卡 6:超级卡
        /// </summary>
        public int cardType { get; set; }
    }


    public class Face
    {
        /// <summary>
        /// 是否必填：否
        /// 支持8-20位数字+大写字母的卡号；以卡为中心设备必填，请根据设备实际能力填写
        /// </summary>
        public string card { get; set; }
        /// <summary>
        /// 是否必填：是
        /// 人脸数据，Key：为人脸编号 Value：为人脸图片https下载的URL，图片要求浏览器可以直接打开，不支持重定向
        /// </summary>
        public Dictionary<string, string> data { get; set; }
    }

    public class PersonInfoAdd
    {
        /// <summary>
        /// 是否必填：是
        /// 人员Id，系统内人员从获取人员列表v2 接口获取返回参数中personId，系统外人员，人员Id由调用方指定，作为人员唯一标志，最大长度为64，包含数字、字母（小写）和中划线（-）
        /// </summary>
        public string personId { get; set; }
        /// <summary>
        /// 是否必填：是
        /// 操作类型，0新增；1修改；2删除
        /// </summary>
        public int operatorType { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 开始日期，配置人员权限的有效期，为空时默认长期有效。采用ISO8601时间格式，最大长度32个字符，如2018-09-03T17:30:08.000+08:00
        /// </summary>
        public string startTime { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 结束日期，配置人员权限的有效期，为空时默认长期有效。采用ISO8601时间格式，最大长度32个字符，如2018-09-03T17:30:08.000+08:00
        /// </summary>
        public string endTime { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 人员类型，默认为1 1. 系统内人员 2. 系统外人员 下载系统外人员时必填
        /// </summary>
        public int personType { get; set; } = 1;
        /// <summary>
        /// 是否必填：否
        /// 人员姓名，系统外人员时必填
        /// </summary>
        public string name { get; set; }
        /// <summary>
        /// 是否必填：是
        /// 卡片信息，下载系统外人员卡片权限时必填
        /// </summary>
        public IList<Card> cards { get; set; }
        /// <summary>
        /// 是否必填：否
        /// 人脸信息，下载系统外人员人脸权限时必填
        /// </summary>
        public Face face { get; set; }
    }
}
